home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Everything For A Hacker
/
19990506-[HACK].iso
/
SECURE
/
CRYPT
/
GOST.ZIP
/
IMITO~.ASM
< prev
next >
Wrap
Assembly Source File
|
1998-03-07
|
4KB
|
120 lines
;------------------------------------------------------
; éδαáí«Γ¬á ¿¼¿óßΓáó¬¿ ñ½∩ ¼áßß¿óá ñá¡¡δσ ß«ú½áß¡«
; ¬α¿»Γ«á½ú«α¿Γ¼π âÄæÆ 28147-89.
; --------> ñ½∩ 32-í¿Γ«óδσ »α«µÑßß«α«ó 80x86 <---------
; Éáºαáí«Γá½ é¿¡«¬πα«ó Ç.₧., ú.î«ß¬óá, 1992-1995 ú.
; (C)1992-1995, æó«í«ñ¡«Ñ ¬«»¿α«óá¡¿Ñ ¿ ¿ß»«½∞º«óá¡¿Ñ.
;------------------------------------------------------
; Åáαá¼ÑΓαδ »α¿ ó맮óÑ »ÑαÑñáεΓß∩ ó ßΓφ¬Ñ :
; æ¼ÑΘÑ¡¿Ñ ÉẼÑα Å Ç É Ç î à Æ É
;NEAR FAR
; 2 4 4 FAR-áñαÑß ¬½ετá (è)
; 6 8 4 FAR-áñαÑß ¿ßσ«ñ¡«⌐ ¬«¼í¿¡áµ¿¿ (êè)
; 10 12 4 FAR-áñαÑß Γáí½¿µδ ºá¼Ñ¡ (Æç)
; 14 16 4 FAR-áñαÑß «í½áßΓ¿ ¡áº¡áτÑ¡¿∩ (ì)
; 18 20 2 τ¿ß½« 8-íá⌐Γ«óδσ í½«¬«ó
;*20 22 2 ñ½¿¡á ¬½ετá ó ñó«⌐¡δσ ß½«óáσ
; (ß¼. óáα¿á¡Γδ ¬«ñ¿α«óá¡¿∩)
;------------------------------------------------------
; ç¡áτÑ¡¿∩ »áαá¼ÑΓα«ó »α¿ óδσ«ñÑ:
; - áñαÑß «í½áßΓ¿ ¡áº¡áτÑ¡¿∩ π¬áºδóδÑΓ ¡á »Ñαóδ⌐ íá⌐Γ
; »«ß½Ñ »«ß½Ññ¡Ñú« «íαáí«Γá¡¡«ú« í½«¬á;
; - áñαÑßá ¬½ετá, Γáí½¿µδ ºá¼Ñ¡ ¿ ¬«¡Γα«½∞¡«⌐ ¬«¼í¿¡á-
; µ¿¿ ¡Ñ ¿º¼Ñ¡¿½¿ß∞;
; - «í½áßΓ∞ ¬«¡Γα«½∞¡«⌐ ¬«¼í¿¡áµ¿¿ ß«ñÑαª¿Γ º¡áτÑ¡¿Ñ,
; ß ¬«Γ«αδ¼ ¡áñ« óδºóáΓ∞ Σπ¡¬µ¿ε ñ½∩ »α«ñ«½ªÑ¡¿∩;
; - ßτÑΓτ¿¬ í½«¬«ó αáóÑ¡ 0;
; - αÑú¿ßΓα EAX ß«ñÑαª¿Γ ¼½áñΦÑÑ ñó«⌐¡«Ñ ß½«ó« ¬«¡-
; Γα«½∞¡«⌐ ¬«¼í¿¡áµ¿¿, ¿ß»«½∞ºπѼ«Ñ «íδτ¡« ¬á¬ ¿¼¿-
; Γ«óßΓáó¬á,τΓ« ß««ΓóÑΓßΓóπÑΓ ó«ºóαáΓπ º¡áτÑ¡¿∩ Γ¿»á
; Item, «»αÑñѽѡ¡«ú« ó Σá⌐½Ñ gost.h ¬á¬
; unsigned long.
;------------------------------------------------------
; êß»«½∞ºπѼδÑ αÑú¿ßΓαδ : óßÑ
;------------------------------------------------------
; éáα¿á¡Γδ ¬«ñ¿α«óá¡¿∩
; - æ¿¼ó«½ KeySize:
; -- æ¿¼ó«½ ¡Ñ«»αÑñѽѡ:Σπ¡¬µ¿∩ ¿ß»«½∞ºπÑΓ αáºóÑα¡πΓδ⌐
; ¬½ετ αẼÑα«¼ ó 16 ¬½ετÑóδσ φ½Ñ¼Ñ¡Γ«ó;
; -- æ¿¼ó«½ «»αÑñѽѡ ¿ ¿¼ÑÑΓ τ¿ß½«ó«Ñ º¡áτÑ¡¿Ñ:
; Σπ¡¬µ¿∩ ¿ß»«½∞ºπÑΓ ¬½ετ π¬áºá¡¡«ú« αẼÑαá (ó
; ¬½ετÑóδσ φ½Ñ¼Ñ¡Γáσ);
; -- æ¿¼ó«½ «»αÑñѽѡ, ¿¼ÑÑΓ »πßΓ«Ñ º¡áτÑ¡¿Ñ:
; αẼÑα ¬½ετá »ÑαÑñáÑΓß∩ ¬á¬ »«ß½Ññ¡¿⌐ »áαá¼ÑΓα
; Σπ¡¬µ¿¿.
;------------------------------------------------------
;
wptr EQU <word ptr>
IFNDEF KeySize
_keysize EQU 16 ; φ½Ñ¼Ñ¡Γ«ó ó ¬½ετÑ
ELSE
IFDIF KeySize,<>
_keysize EQU KeySize ; φ½Ñ¼Ñ¡Γ«ó ó ¬½ετÑ
ENDIF
ENDIF
;
.model small,C
.code $gost
.386
extrn gost386:near
imito proc
public imito
; óδτ¿ß½∩Ѽ ß¼ÑΘÑ¡¿Ñ »áαá¼ÑΓα«ó ó ßΓφ¬Ñ
a=10 ; 2+1+1+1 ß½«ó ó ßΓφ¬Ñ
IF (TYPE imito) EQ 0FFFEh
a=a+2 ; Ñß½¿ gamma - far-»α«µÑñπαá
ENDIF
; çáñáѼ ß¼ÑΘÑ¡¿Ñ áαúπ¼Ñ¡Γ«ó ó ßΓφ¬Ñ
;
key= 2+a
syn= 6+a
chg= 10+a
tar= 14+a
len= 18+a
IFNDEF _keysize
keylen= 20+a
ENDIF
;
; æ«σαá¡Ñ¡¿Ñ αÑú¿ßΓα«ó »« ß«ú½áΦÑ¡¿∩¼ Turbo C
push EBP
push DS
push SI
push DI
; çáúαπº¬á ¡áτá½∞¡«ú« º¡áτÑ¡¿∩ ¬«¡Γα«½∞¡«⌐ ¬«¼í¿¡áµ¿¿
lds SI,syn[ESP] ; DS:SI <- áñαÑß êè (S2,S1)
mov EAX,[SI] ; EAX <- S1
mov EDX,4[SI] ; EDX <- S2
; ìáτá½∞¡á∩ ºáúαπº¬á π¬áºáΓѽÑ⌐
mov ES,key+2[ESP] ; ES <- ßÑú¼Ñ¡Γ ¬½ετá
lds BX,chg[ESP] ; DS:BX <- áñαÑß Æç
lfs DI,tar[ESP] ; FS:DI <- áñαÑß ñá¡¡δσ
; ä«íáó½∩Ѽ í½«¬ ñá¡¡δσ
circle: xor EAX,FS:[DI] ; âá¼¼¿απѼ
xor EDX,FS:4[DI] ; 8-íá⌐Γ¡δ⌐
; é맮ó »α«ßΓ«⌐ ºá¼Ñ¡δ;
IFDEF _keysize
mov CX,_keysize ; CX <- τ¿ß½« «ß¡«ó¡. Φáú«ó
ELSE
mov CX,keylen[ESP] ; CX <- τ¿ß½« «ß¡«ó¡. Φáú«ó
ENDIF
mov SI,key[ESP] ; ES:SI <- áñαÑß ¬½ετá
call gost386 ; <Φáú »α«ßΓ«⌐ ºá¼Ñ¡δ>
; Äαúá¡¿ºáµ¿∩ µ¿¬½á
add DI,8 ;¬«ααѬµ¿∩ áñαÑßá ¡áº¡.
dec wptr len[ESP] ;¬«ααѬµ¿∩ ßτÑΓτ¿¬á í.
jnz circle ; µ¿¬½¿¼ß∩
; æ«σαá¡Ñ¡¿Ñ ¬«¡Γα«½∞¡«⌐ ¬«¼í¿¡áµ¿¿ ñ½∩ ß½Ññ. ó맮óá
; (φΓ« ¡πª¡« ñ½∩ «íαáí«Γ¬¿ ¼áßß¿óá ñá¡¡δσ τáßΓ∩¼¿, ó
; »α«Γ¿ó¡«¼ ß½πτáÑ ¼«ª¡« πñ὿Γ∞ φΓπ ßѬµ¿ε)
lds SI,syn[ESP] ; DS:SI -> ß¿¡σα«»«ß佬á
mov [SI],EAX ; ºá¡«ß¿¼ ¡«óδÑ º¡áτÑ¡¿∩
mov 4[SI],EDX ; S1,S2 ¡á ¿σ ¼ÑßΓ« !!!
; é«ßßΓá¡«ó½Ñ¡¿Ñ αÑú¿ßΓα«ó ¿º ßΓφ¬á
pop DI
pop SI
pop DS
pop EBP
ret
imito endp
end